{# Поле ввода типа «флаг».

  Аргументы:
  * id — уникальный идентификатор поля ввода
  * name — наименование параметра для отправки из формы на серверную сторону
  * is_checked — должен ли быть включен флаг
#}
{% macro INPUT(
    id,
    name,
    is_checked=False)
-%}
  <div class="form-check form-switch">
    {# HACK : если checkbox не включен, значение не отправляется на серверную
              часть, для обхода этой проблемы заведено скрытое поле,
              значение которого изменяет checkbox #}
    <input
        type="hidden"
        name="{{ name }}"
        id="{{ id }}"
        value="{% if is_checked %}on{% endif %}">
    <input
        class="form-check-input"
        type="checkbox"
        role="switch"
        id="{{ id }}_visable"
        {% if is_checked %}checked{% endif %}>
    <script>
      var {{ id }}_checkbox = document.querySelector('input[id="{{ id }}_visable"]');
      {{ id }}_checkbox.addEventListener('change', () => {
        document.querySelector('input[id="{{ id }}"]').value = ({{ id }}_checkbox.checked) ? 'on' : '';
      });
    </script>
  </div>
{%- endmacro %}
